using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._ServerTools._Printing
{
    /// <summary>
    /// <para>Get Layout Templates Info</para>
    /// <para>Returns the content
    /// of layout templates in JavaScript Object Notation
    /// (JSON) format. Layout files (.pagx files) located in a folder are used as layout templates.</para>
    /// <para>返回内容
    /// JavaScript 对象表示法中的布局模板
    /// （JSON） 格式。位于文件夹中的布局文件（.pagx 文件）用作布局模板。</para>
    /// </summary>    
    [DisplayName("Get Layout Templates Info")]
    public class GetLayoutTemplatesInfo : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public GetLayoutTemplatesInfo()
        {

        }
        public override string ToolboxName => "Server Tools";

        public override string ToolName => "Get Layout Templates Info";

        public override string CallName => "server.GetLayoutTemplatesInfo";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_Layout_Templates_Folder, _Output_JSON];

        /// <summary>
        /// <para>Layout Templates Folder</para>
        /// <para>Full path to the folder where layout files (.pagx files), to be used as layout templates, are located. The default location is <install_directory>\Resources\ArcToolBox\Templates\ExportWebMapTemplates.</para>
        /// <para>要用作布局模板的布局文件（.pagx 文件）所在的文件夹的完整路径。默认位置为 <install_directory>\Resources\ArcToolBox\Templates\ExportWebMapTemplates。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Layout Templates Folder")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Layout_Templates_Folder { get; set; } = null;


        /// <summary>
        /// <para>JSON String</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("JSON String")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_JSON { get; set; }


        public GetLayoutTemplatesInfo SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}